package com.test.json;

import java.util.List;

/**
 * JsonArray. <br>
 * 格式转换类.
 * <p>
 * Copyright: Copyright (c) 2010-4-17 下午03:49:10
 * <p>
 * Company: 北京宽连十方数字技术有限公司
 * <p>
 * Author: liuxl@c-platform.com
 * <p>
 * Version: 1.0
 * <p>
 */
public class JsonArray {

	/**
	 * List转换成json字符串。 <br>
	 * 
	 * @param list
	 *            ObjectList
	 * @return 返回json字符串
	 */
	public static String fromList(List<? extends Object> list) {
		return JsonArray.fromList(list, null, null, JsonUtil.shortDate);
	}

	/**
	 * List转换成json字符串(指定显示字段)。 <br>
	 * 
	 * @param list
	 *            ObjectList
	 * @param item
	 *            属性数组
	 * @return 返回json字符串
	 */
	public static String fromList(List<? extends Object> list, String[] item) {
		return JsonArray.fromList(list, item, null, JsonUtil.shortDate);
	}

	/**
	 * List转换成json字符串(格式化指定日期指定日期格式的 字段日期)。 <br>
	 * 
	 * @param list
	 *            ObjectList
	 * @param item
	 *            属性数组
	 * @param datePattern
	 *            时间格式
	 * @return 返回json字符串
	 */
	public static String fromList(List<? extends Object> list, String[] item, int datePattern) {
		return JsonArray.fromList(list, item, null, datePattern);
	}

	/**
	 * List转换成json字符串(格式化指定日期指定日期格式的 字段日期)。 <br>
	 * 
	 * @param list
	 *            ObjectList
	 * @param item
	 *            时间属性数组
	 * @return 返回json字符串
	 */
	public static String fromList(List<? extends Object> list, String[] item, String[] item4long2Date) {
		return JsonArray.fromList(list, item, item4long2Date, JsonUtil.longDate);
	}

	/**
	 * List转换成json字符串(格式化指定日期指定日期格式的 字段日期)。 <br>
	 * 
	 * @param list
	 *            ObjectList
	 * @param item
	 *            时间属性数组
	 * @return 返回json字符串
	 */
	public static String fromList(List<? extends Object> list, String[] item, String[] item4long2Date, int datePattern) {

		if (list == null) {
			return "";
		}
		if (list.isEmpty()) {
			return "";
		}

		String jsonString = "";

		int size = list.size();

		boolean first = true;

		for (int i = 0; i < size; i++) {
			Object object = list.get(i);
			if (object != null) {
				if (first) {
					first = false;
					jsonString = "{" + JsonObject.fromObject(object, item, item4long2Date, datePattern) + "}";
				} else {
					jsonString = jsonString + ",{" + JsonObject.fromObject(object, item, item4long2Date, datePattern) + "}";
				}
			}
		}
		return jsonString;
	}

}
